/**
 * @description 格式化字典
 * @date 2020-06-21
 * @param {(string | number | undefined)} value 原始值
 * @param {Dict[]} list 字典数组
 * @param {keyof Dict} [key='value'] 返回字典key
 * @param {keyof Dict} [findKey='value'] 查找项key
 */
export function fmtDict(
  value: string | number | undefined,
  list: Dict[],
  key: keyof Dict = 'dictLabel',
  findKey: keyof Dict = 'dictValue'
) {
  if (value === undefined) return
  if (list === undefined || list.length === 0) {
    console.error('error: 字典列表为空')
    return
  }
  const index = list.findIndex(item => {
    return String(item[findKey]) === String(value)
  })
  if (index !== -1) {
    return list[index][key] || '-'
  } else {
    return '--'
  }
}

/**
 * @description 是否为空 / -1 / null
 * @date 2020-10-28
 * @param {(string | number | undefined)} name 判断值
 */
export function isNull(name: string | number | undefined) {
  if (typeof name === 'string') {
    return name !== '' ? name : '--'
  } else if (typeof name === 'number') {
    return name !== -1 ? name : '--'
  } else {
    return '--'
  }
}

/**
 * @description: 数字转换金钱, 保留两位
 * @param {number} num
 * @return {string}
 */
export function fmtNumToFixed(num: number): string {
  const str = String(num)
  const decimal = str.indexOf('.')
  if (decimal > -1) {
    const decimalBehind = str.split('.')[1]
    if (decimalBehind.length === 1) {
      return str + '0'
    } else if (decimalBehind.length === 2) {
      return str
    } else {
      return str + decimalBehind.slice(0, 2)
    }
  } else {
    return str + '.00'
  }
}
